+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
+2001-10-23 Havoc Pennington <hp@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_grab_focus): scroll to cursor
+ on grab focus, unless it's caused by button click, #59708
+
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
static gint gtk_text_view_expose_event (GtkWidget *widget,
GdkEventExpose *expose);
static void gtk_text_view_draw_focus (GtkWidget *widget);
+static void gtk_text_view_grab_focus (GtkWidget *widget);
/* Source side drag signals */
static void gtk_text_view_drag_begin (GtkWidget *widget,
text_view = GTK_TEXT_VIEW (widget);
+ text_view->disable_scroll_on_focus = TRUE;
gtk_widget_grab_focus (widget);
+ text_view->disable_scroll_on_focus = FALSE;
if (event->window != text_view->text_window->bin_window)
{
}
}
+static void
+gtk_text_view_grab_focus (GtkWidget *widget)
+{
+ GtkTextView *text_view;
+
+ text_view = GTK_TEXT_VIEW (widget);
+
+ GTK_WIDGET_CLASS (parent_class)->grab_focus (widget);
+
+ if (!text_view->disable_scroll_on_focus)
+ gtk_text_view_scroll_mark_onscreen (text_view,
+ gtk_text_buffer_get_mark (get_buffer (text_view),
+ "insert"));
+}
+
/*
* Container
*/
guint need_im_reset : 1; /* If we have reset the IM since the last character entered */
/* just selected a word or line via double/triple click */
guint just_selected_element : 1;
+
+ /* disable scrolling to cursor on focus */
+ guint disable_scroll_on_focus : 1;
/* debug flag - means that we've validated onscreen since the
* last "invalidate" signal from the layout